package router

import (
	"go-demo-2025/controllers"
	"net/http"

	"github.com/gin-gonic/gin"
)

func Router() *gin.Engine {
	r := gin.Default()

	// 测试返回json
	r.GET("/json", func(c *gin.Context) {
		c.JSON(http.StatusOK, gin.H{
			"code":    http.StatusOK,
			"success": true,
		})
	})

	// 基本操作
	// GET请求, 浏览器访问 http://127.0.0.1:8080/get?name=zhangsan
	r.GET("/get", controllers.BasicGetData)

	// POST请求, 通过postman请求 http://127.0.0.1:8080/post
	r.POST("/post", controllers.BasicPostData)

	// 重定向到其它的域名
	r.GET("/redirect1", func(c *gin.Context) {
		url := "http://www.baidu.com"                //重定向的URL
		c.Redirect(http.StatusMovedPermanently, url) //301永久重定向
	})

	// 重定向到当前服务的其它路由
	r.GET("/redirect2", func(c *gin.Context) {
		c.Request.URL.Path = "/get" //重定向到 http://127.0.0.1:8080/get
		r.HandleContext(c)
	})

	// 通过HTTP请求获取和发送数据与三方服务交互, 请求 http://127.0.0.1:8080/curl 可以获取到设定的URL中的内容
	r.GET("/curl", controllers.BasicCurlData)

	//不同格式的内容输出, 可以输出JSON、XML、YAML等格式
	//127.0.0.1:8080/output?flag=json/xml/yaml
	r.GET("/output", controllers.Output)

	return r
}
